/* $Id: eltclsh.c 7557b5d4d82b 2012/12/02 09:07:16 pgurumur $ */
/*	$LAAS: eltclsh.c,v 1.4 2003/09/27 17:14:21 mallet Exp $ */

/* 
 * Copyright (c) 2001 LAAS/CNRS                       --  Wed Oct 10 2001
 * All rights reserved.                                    Anthony Mallet
 *
 * Redistribution and use  in source  and binary  forms,  with or without
 * modification, are permitted provided that the following conditions are
 * met:
 *
 *   1. Redistributions of  source  code must retain the  above copyright
 *      notice, this list of conditions and the following disclaimer.
 *   2. Redistributions in binary form must reproduce the above copyright
 *      notice,  this list of  conditions and the following disclaimer in
 *      the  documentation  and/or  other   materials provided  with  the
 *      distribution.
 *
 * THIS  SOFTWARE IS PROVIDED BY  THE  COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND  ANY  EXPRESS OR IMPLIED  WARRANTIES,  INCLUDING,  BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES  OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR  PURPOSE ARE DISCLAIMED. IN  NO EVENT SHALL THE COPYRIGHT
 * HOLDERS OR      CONTRIBUTORS  BE LIABLE FOR   ANY    DIRECT, INDIRECT,
 * INCIDENTAL,  SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 * BUT NOT LIMITED TO, PROCUREMENT OF  SUBSTITUTE GOODS OR SERVICES; LOSS
 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR
 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
 * USE   OF THIS SOFTWARE, EVEN   IF ADVISED OF   THE POSSIBILITY OF SUCH
 * DAMAGE.
 */

#include "eltclsh.h"


/*
 * Startup --------------------------------------------------------------
 *
 * Spawn the task (VxWorks) or simply start the application (Unix)
 */
int 
main(int argc, const char *argv[])
{
   getElTclData();
   getElTclLibDir();
   char *app = basename(argv[0]);
   if (strcmp(app, "elwish") == 0)
      elTclshLoop(argc, argv, elWishAppInit);
   else
      elTclshLoop(argc, argv, elTclAppInit);

   if (elTclDataDir)
      free(elTclDataDir);

   if (elTclLibDir)
      free(elTclLibDir);

   return 0;
}

void
getElTclData()
{
   char buffer[BUFSIZ];

   memset(buffer, '\0', BUFSIZ);
   snprintf(buffer, sizeof(buffer), "%s/.tcl/", getenv("HOME"));
   elTclDataDir = (char *)malloc(strlen(buffer) + 1);
   strlcpy(elTclDataDir, buffer, strlen(buffer) + 1);
}

void
getElTclLibDir()
{
   char buffer[BUFSIZ];

   memset(buffer, '\0', BUFSIZ);
   snprintf(buffer, sizeof(buffer), "%s/.tcl/", getenv("HOME"));
   elTclLibDir = (char *)malloc(strlen(buffer) + 1);
   strlcpy(elTclLibDir, buffer, strlen(buffer) + 1);
}
